/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.its.dsw2.biblioteca.bl;

import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import mx.its.desarrollosw2.Autor;
import mx.its.desarrollosw2.dao.AutorDaoLocal;
import mx.its.dsw2.biblioteca.enumeracion.Estadotransaccion;

/**
 *
 * @author sistemas
 */
@Stateless
public class AutorBl implements AutorBlLocal {
    @EJB//se evita crear el objeto con esta anotacion se llama al objeto ya que el contenedor ya lo creo 
    private AutorDaoLocal autorDao; //autor objeto del dao creado en el contenedor de ejb(se le llama metodo de inyeccion de codigo)
    //lamada a un enterprice java beans con el metodo
    //de inyeccion de objetos pues cuando se necesite
    //el mismo contenedor de ejb's creara el objeto e inicializara la variable
    //este es otro comentario
    @Override
    public Estadotransaccion Register(Autor author) {
        if(autorDao.findDuplicity(author)){
             return Estadotransaccion.INCOMPLETO;
        }else{
            autorDao.create(author);
        return Estadotransaccion.COMPLETO;
        }
 
    }

 

    @Override
    public Estadotransaccion modify(Autor author) {
        if(author.getId()==null || autorDao.find(author.getId())==null){
    return Estadotransaccion.INCOMPLETO;
}else{
   autorDao.edit(author);
   return Estadotransaccion.COMPLETO;
    }


   
}

    @Override
    public Estadotransaccion delete(Autor author) {
            if(author.getId()==null || autorDao.find(author.getId())==null){
    return Estadotransaccion.INCOMPLETO;
}else{
   autorDao.remove(author);
   return Estadotransaccion.COMPLETO;
    }
   }

    @Override
    public List<Autor> getAll() {
        return autorDao.findAll();
    }

    @Override
    public Autor findById(int idAutor) {
        return autorDao.find(idAutor);
    }

    
}
